package com.guodi.model.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.guodi.model.vo.ApiIndicatorsValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @描述：指标目录表
 * @作者: 彭辉
 * @日期: 2020-06-05
 */
@ApiModel(value="指标目录表")
@Data
public class ApiIdtIndicatorsDir implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键id")
    private String id;

    @ApiModelProperty(value = "目录/指标名称")
    private String name;

    @ApiModelProperty(value = "上级目录id")
    private String parentId;

    @ApiModelProperty(value = "图标")
    private String icon;

    @ApiModelProperty(value = "排序")
    private Integer sort;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "指标id")
    private String indicatorsId;

    @ApiModelProperty(value = "机构id")
    private String orgId;

    @ApiModelProperty(value = "展示内容(全部，监测值，上报值，规划值，基期值)")
    private String displayContent;

    @ApiModelProperty(value = "目录类型(普通目录，图表目录)")
    private String catalogType;

    @ApiModelProperty(value = "文件地址")
    private String uploadFile;

    @ApiModelProperty(value = "指标项自定义编码")
    private String indicatorsCustomCode;

    @ApiModelProperty(value = "创建人",hidden = true)
    private String creator;

    @ApiModelProperty(value = "创建时间",hidden = true)
    private Date createTime;

    @ApiModelProperty(value = "修改人",hidden = true)
    private String modifier;

    @ApiModelProperty(value = "修改时间",hidden = true)
    private Date modifyTime;

    @ApiModelProperty(value = "指标预警配置")
    private String warnRuleConfig;

    @ApiModelProperty(value = "评估规则配置")
    private String estimateRuleConfig;

    @ApiModelProperty(value = "当前目录等级",hidden = true)
    @TableField(exist = false)
    private Integer treeLevel;

    @ApiModelProperty(value = "文件类型，1是目录，2是文件",hidden = true)
    private Integer type;

    @ApiModelProperty(value = "指标名称",hidden = true)
    @TableField(exist = false)
    private String idtName;

    @ApiModelProperty(value = "指标编号",hidden = true)
    @TableField(exist = false)
    private String idtCode;

    @ApiModelProperty(value = "指标类型（basic：基本指标，recommend：推荐指标，place：地方指标）",hidden = true)
    @TableField(exist = false)
    private String idtType;

    @ApiModelProperty(value = "指标单位",hidden = true)
    @TableField(exist = false)
    private String idtUnit;

    @ApiModelProperty(value = "指标内涵",hidden = true)
    @TableField(exist = false)
    private String idtConnotation;

    @ApiModelProperty(value = "指标计算及来源说明",hidden = true)
    @TableField(exist = false)
    private String idtCalculateSource;

    @ApiModelProperty(value = "指标属性（constraint：约束性，expect：预期性）",hidden = true)
    @TableField(exist = false)
    private String idtAttribute;

    @ApiModelProperty(value = "指标范围（all：全域、city：城区）",hidden = true)
    @TableField(exist = false)
    private String idtScope;

    @ApiModelProperty(value = "行政区划代码",hidden = true)
    @TableField(exist = false)
    private String idtDivisionCode;

    @ApiModelProperty(value = "是否公共指标（0：否，1：省级，2：市级）",hidden = true)
    @TableField(exist = false)
    private Integer idtIsPublic;

    @ApiModelProperty(value = "数据来源（hand：手动录入，formula：公式计算，model：模型结果）",hidden = true)
    @TableField(exist = false)
    private String idtDatasource;

    @TableField(exist = false)
    @ApiModelProperty(value = "预警规则")
    private String idtWarnRule;

    @ApiModelProperty(value = "更新周期",hidden = true)
    @TableField(exist = false)
    private String idtUpdateCycle;

    @ApiModelProperty(value = "责任单位",hidden = true)
    @TableField(exist = false)
    private String idtDutyCompany;

    @ApiModelProperty(value = "责任单位名称",hidden = true)
    @TableField(exist = false)
    private String idtDutyCompanyName;

    @ApiModelProperty(value = "采集单位",hidden = true)
    @TableField(exist = false)
    private String idtGatherCompany;

    @ApiModelProperty(value = "指标数值",hidden = true)
    @TableField(exist = false)
    private ApiIndicatorsVal ApiIndicatorsVal;

    @ApiModelProperty(value = "指标数值(多年份)",hidden = true)
    @TableField(exist = false)
    private List<ApiIndicatorsVal> apiIndicatorsValList;

    @ApiModelProperty(value = "指标项")
    @TableField(exist = false)
    private com.guodi.model.entity.IdtIndicators idtIndicators;

    @ApiModelProperty(value = "责任处室")
    @TableField(exist = false)
    private String idtDutyDepartment;

    @ApiModelProperty(value = "责任处室名称")
    @TableField(exist = false)
    private String idtDutyDepartmentName;

    @ApiModelProperty(value = "最终计算单位")
    @TableField(exist = false)
    private String idtCalculateUnit;

    @ApiModelProperty(value = "子目录",hidden = true)
    @TableField(exist = false)
    private List<ApiIdtIndicatorsDir> children;

    @ApiModelProperty(value = "指标项")
    @TableField(exist = false)
    private Integer sumIndicators;

    @ApiModelProperty(value = "预警中状态总数")
    @TableField(exist = false)
    private Integer sumWarnStatus;

    @ApiModelProperty(value = "上级目录名称")
    @TableField(exist = false)
    private String parentName;

    @ApiModelProperty(value = "指标数据")
    @TableField(exist = false)
    private ApiIndicatorsValue apiIndicatorsValue;

    @ApiModelProperty(value = "是否能填报(1:是，0:否)")
    @TableField(exist = false)
    private Integer isReportFlag;

    @ApiModelProperty(value = "复合指标计算公式")
    @TableField(exist = false)
    private String calculateResult;

    @ApiModelProperty(value = "数据来源-计算公式")
    @TableField(exist = false)
    private String calculateFormula;

    @ApiModelProperty(value = "复合指标计算指标集合")
    @TableField(exist = false)
    private List<ApiIdtIndicatorsDir> calculateResultLit;

    @ApiModelProperty(value = "推荐指标数量")
    @TableField(exist = false)
    private Integer recommendNum;

    @ApiModelProperty(value = "基本指标数量")
    @TableField(exist = false)
    private Integer basicNum;

    @ApiModelProperty(value = "地方指标数量")
    @TableField(exist = false)
    private Integer placeNum;

    @ApiModelProperty(value = "返回责任处室用户集")
    @TableField(exist = false)
    private List<Long> userIds;

    /**
     * 2023.04.07
     * 得分值。预警清单
     */
    @ApiModelProperty(value = "得分值")
    @TableField(exist = false)
    private String scoreValue;

    @ApiModelProperty(value = "预警清单",hidden = true)
    @TableField(exist = false)
    private List<ApiIndicatorsVal> warnValList;
}
